[glue] DKG+reshare#4131
Conversation
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
commonware-mcp | 85fea78 | Jul 17 2026, 07:39 PM |
Deploying monorepo with
|
| Latest commit: |
85fea78
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://54b0f215.monorepo-eu0.pages.dev |
| Branch Preview URL: | https://cl-glue-reshare.monorepo-eu0.pages.dev |
859c8d8 to
fb8dd9d
Compare
d21cf0f to
207b02f
Compare
9e5d2c3 to
647b9b5
Compare
3708d04 to
dbfddd4
Compare
Followers lack reshare history but still participate in Simplex. Let the inner application verify boundary proposals instead of forcing a nullify or leaving verification pending.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 53f0738. Configure here.
A participants provider set that passes max_participants but whose dealer quorum exceeds the epoch dealer-log slots was embedded into finalized EpochInfo unchecked. Two epochs later every node re-derives the boundary info from the chain and panics in setup, permanently. Reject the set at embed time, before it can poison the chain.
enter_epoch unwrapped every mux registration, so a vote/resolver muxer exiting on the stop signal (or the externally owned certificate mux stopping) mid-transition panicked the orchestrator instead of stopping it. The gate wait also polled the marked gate before the shutdown signal, making the race deterministic once the fence advanced. Treat a closed mux as a clean stop and poll shutdown first.
2d4a7f8 to
c5bc86e
Compare
Marshal cancels pending mailbox reads when it exits, so a boundary block read racing shutdown resolved None and the orchestrator panicked with the operator-facing retention-violation message on an intact archive (startup resolution also misread the canceled processed-height as a fresh node). Recheck the stop signal after a failed read and stop cleanly instead.
FailedCeremonyCarryOver read both boundaries from one reference node, failing correct runs when that node state-synced past the previous boundary (its floor excludes height 31 while the property needs it). Read the pre-floor boundary from whichever node retains it, and demand the carry-over boundary from the state-synced node itself whenever its floor covers that height. Apply the retaining-node read to BoundaryOutputMode, which sampled a single node the same way.
| let response_epoch = finalization.epoch(); | ||
| let sample_scheme = self.provider.scheme(self.minimum_epoch)?; | ||
| if sample_scheme.participants().position(&peer).is_none() { | ||
| commonware_p2p::block!(self.blocker, peer, "finalization sent by non-participant"); |
There was a problem hiding this comment.
this can happen if the validator was added after the minimum epoch?
There was a problem hiding this comment.
I don’t think so—we only send the request to participants in the configured minimum epoch. A validator added later wouldn’t receive one, so a response from it would be unsolicited. The response can still carry a newer-epoch finalization; we verify that certificate against the newer epoch’s scheme.
Codecov Report❌ Patch coverage is @@ Coverage Diff @@
## main #4131 +/- ##
==========================================
- Coverage 95.06% 95.05% -0.02%
==========================================
Files 573 595 +22
Lines 238812 245539 +6727
Branches 5804 5993 +189
==========================================
+ Hits 227028 233389 +6361
- Misses 9873 10154 +281
- Partials 1911 1996 +85
... and 49 files with indirect coverage changes Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|

Overview
Note
PR Stack:
glue::dkg#4146mainAdds a standard, state-sync capable DKG+reshare library to
commonware-glue. Protocol explained in the docs.Explainer: https://claude.ai/artifacts/latest/bdf9c08d-cc7c-44ed-97ef-cd209e38d215
closes #3921